var arr = [1, [2], [3, [4, [5, [6]]]]];

// 1. 利用 ES6 Array.flat(n)
const arr1 = arr.flat(Infinity);
console.log("利用 ES6 Array.flat(n)", arr1);

// 2. 遍历数组每一项，只要是数组，就对整个数组进行一次降维打击
Array.prototype.myFlat = function () {
  var self = this;

  while (self.some((item) => Array.isArray(item))) {
    self = [].concat(...self);
  }

  return self;
};

var arr2 = arr1.myFlat();
console.log("arr=[].concat(...arrr)可对arr进行降维打击", arr2);
